package innerclass;

public class InnerClassDemo1 {
    public static void main(String[] args) {
        //目标：搞清楚成员内部类的语法
        //成员内部类创建对象的格式：
        //外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
        Outer.Inner oi = new Outer().new Inner();
        oi.show();
        oi.setA(100);
        System.out.println(oi.getA());
        //成员内部类访问外部类成员的特点：
        //1.成员内部类中可以直接访问外部类的静态成员，也可以访问外部类的实例成员
        //2.成员内部类的实例方法中，可以直接拿到当前寄生的外部类对象：外部类名.this
        People.Heat heat = new People().new Heat();
        heat.show();

    }
}


class People{
    private int heatBeat = 100;

    public class Heat {
        private int heatBeat = 60;
        public void show(){
            int heatBeat = 80;
            //直接拿到当前方法的局部变量
            System.out.println(heatBeat);
            //直接拿到内部类的实例对象
            System.out.println(this.heatBeat);
            //直接拿到外部类的静态对象
            System.out.println(People.this.heatBeat);
        }
    }
}